package com.swanclouds.model.systems;

import com.swanclouds.model.DeviceEntity;
import com.swanclouds.model.ModelEntity;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * BIOS 资源
 *
 */
public interface Bios extends DeviceEntity {

    /**
     * BIOS 资源的Id
     * @return Id
     */
    String getId();

    /**
     * BIOS 资源的名称
     * @return Name
     */
    String getName();

    /**
     * BIOS 资源的描述信息
     * @return Description
     */
    String getDescription();

    /**
     * BIOS 属性注册资源ID
     * @return AttributeRegistry
     */
    String getAttributeRegistry();

    /**
     * BIOS 属性列表
     * @return Attributes
     */
    Map<String,String> getAttributes();

    /**
     * Redfish 允许的 BIOS 资源可执行操作
     * @return Actions
     */
    Map<String,Object> getActions();

    /**
     * BIOS 设置资源信息
     * @return RedfishSettings
     */
    RedfishSettings getRedfishSettings();

    interface RedfishSettings extends ModelEntity {

        String getType();

        String getSettingsObject();

        default List<String> getMessages() { return new ArrayList<>(); }

        default String getTime() { return null; }

        interface Member extends ModelEntity {

            String getDataId();
        }
    }
}
